package cn.fl.project.service;

import cmm.comm.facade.framework.dto.SysDictionaryDTO;
import cmm.mid.core.framework.page.KeyValueVO;
import cmm.mid.core.framework.page.Pager;
import cn.fl.project.vo.PrjPrdBscInfoVO;
import cn.fl.project.vo.PrjPrdParamConfigVO;

import java.util.List;

/**
 * 车型库
 * 作者:hongyanbo
 * 时间:2018/7/10
 */
public interface IVehicleStyleService {

    /**
     * 查询品牌
     * @return
     */
    List<KeyValueVO> getBrandList();

    /**
     * 查询车系
     * @param brandId 品牌id
     * @return
     */
    List<KeyValueVO> getModelList(Long brandId);

    /**
     * 查询车型
     * @return
     */
    List<KeyValueVO> getStyleList(Long makeId, Long carModelId, Long purpose);

    /**
     * 车辆用途
     * @Param level 码层级
     * @Param pcode 父代码
     * @return
     */
    List<KeyValueVO> getCarUsageDicList(int level , String pcode);

    /**
     * 查询车型列表
     * @param pager
     */
    Pager selectListPage(Pager pager);

    /**
     * 获取产品信息（参配信息）
     * @param id
     */
    PrjPrdParamConfigVO getPrdDetail(Long id);

    /**
     * 获取用途名称
     * @param purposeCd
     * @return
     */
    public SysDictionaryDTO getPurposeDictionaryDTO(String purposeCd);

    /**
     * 获取用途代码的父cd
     * @param purposeCd
     * @return
     */
    String getPurposePCd(Long purposeCd);

    PrjPrdBscInfoVO getPrjPrdBscnInfoAndExtById(String id);

    /**
     *
     * @param modelId
     */
    List<KeyValueVO> getCarUsageLv1(Long modelId);

    /**
     * 根据车系和车分类 查询车辆用途
     * @param modelId
     * @param lv1
     */
    List<KeyValueVO> getCarUsageLv2(String modelId, String lv1);

    /**
     * 获取车型库厂商 用作挂车查询条件
     * @return
     */
    List<KeyValueVO> getMfrList();

    /**
     * 获取挂车车辆用途
     * @return
     */
    List<KeyValueVO> getTrailerUsageList();

    /**
     * 获取收款方类型
     * @return
     */
    List<KeyValueVO> getReceiveTypeCdList();

    /**
     * 查询挂车车型
     * @param pager
     * @return
     */
    Pager selectTrailerListPage(Pager pager);
}
